<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>


        // js是一种单线程的语言
        //    js是做DOM操作的   只能是单线程



        // 同步：  烧水，泡茶，喝茶     先后顺序
        // 异步：  听歌，写代码，泡脚    没有先后顺序


        // js是一种单线程的语言   ---  代码是同步的  
        //    实际上在js当中有少许的异步代码    点击事件 定时器和延时器  ajax



        // 实际上js代码的执行
        //   先执行所有的同步代码，遇到异步就进入任务队列中等待
        //   同步代码执行完毕，主线程就会清空，再执行任务队列中的任务
        //   异步任务看谁先执行  --- 优先执行先到时间的 ， 时间相同就按照顺序执行


        //   当异步任务进入主线程以后
        //     先执行完所有的同步代码  ， 主线程清空




        // 点击事件          ---  后执行的
        // 定时器和延时器     ---  后执行的




        setTimeout(function () {
            console.log(3);
            setTimeout(function () {
                console.log(5);
            }, 0)
            console.log(6);
        }, 1)


        setTimeout(function () {
            console.log(1);
            setTimeout(function () {
                console.log(4);
            }, 2)
        }, 0)

        console.log(2);

        // 2  







        for (var i = 0; i < 10; i++) {
            setTimeout(function () {
                console.log(i);
            })
        }


        console.log(i);   // 10个10




    </script>

</body>

</html>